{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import sys\n",
    "import os\n",
    "# 将上级目录添加到 sys.path 中\n",
    "sys.path.append(os.path.abspath(\"..\"))\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 导入 Deck 类（注意：确保 Deck 类文件在 /entity 目录下）\n",
    "from entity.deck import Deck\n",
    "deck = Deck()\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "抽取的起始手牌:\n",
      "Card(76, 桃, ♥️, 6, 基本牌)\n",
      "Card(116, 铁索连环, ♣️, 10, 锦囊牌)\n",
      "Card(101, 无中生有, ♥️, 7, 锦囊牌)\n",
      "Card(58, 闪, ♦️, 10, 基本牌)\n"
     ]
    }
   ],
   "source": [
    "# 测试抽取起始手牌接口（抽取 4 张牌）\n",
    "initial_hand = deck.draw_initial_hand()\n",
    "print(\"\\n抽取的起始手牌:\")\n",
    "for card in initial_hand:\n",
    "    print(card)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(4, '杀', 1, 9, '基本牌')"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "initial_hand[1].to_tuple()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "初始 one-hot 状态:\n",
      "[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]\n",
      "剩余卡片数量 :\n",
      "156\n"
     ]
    }
   ],
   "source": [
    "# 查看初始的 one-hot 状态（全部 160 张牌应该都在牌堆中）\n",
    "print(\"初始 one-hot 状态:\")\n",
    "print(deck.get_one_hot_state())\n",
    "print(\"剩余卡片数量 :\")\n",
    "print(sum(deck.get_one_hot_state()))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "重新抽取的新起始手牌:\n",
      "Card(117, 铁索连环, ♣️, J, 锦囊牌)\n",
      "Card(28, 杀, ♥️, 10, 基本牌)\n",
      "Card(109, 顺手牵羊, ♠️, J, 锦囊牌)\n",
      "Card(39, 雷杀, ♠️, 8, 基本牌)\n",
      "剩余卡片数量 :\n",
      "156\n"
     ]
    }
   ],
   "source": [
    "# 测试重新抽起始手牌接口：\n",
    "# 将之前抽取的手牌归还牌堆，并重新抽取 4 张新手牌\n",
    "initial_hand = deck.redraw_initial_hand(initial_hand)\n",
    "print(\"\\n重新抽取的新起始手牌:\")\n",
    "for card in initial_hand:\n",
    "    print(card)\n",
    "\n",
    "print(\"剩余卡片数量 :\")\n",
    "print(sum(deck.get_one_hot_state()))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "测试重构后的回溯法是否正常运行"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "from entity.player import Player\n",
    "from entity.card import Card\n",
    "from play_order.rule_based_strategy import RuleBasedStrategy"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 构造测试玩家，并假设其手牌已被填充若干 Card 对象\n",
    "player = Player(name=\"测试玩家\")\n",
    "\n",
    "player.hand = [\n",
    "    Card.create_card_from_input(11, \"杀\", \"♣️\", \"6\", \"基本牌\"),\n",
    "    Card.create_card_from_input(106, \"顺手牵羊\", \"♦️\", \"4\", \"锦囊牌\"),\n",
    "    Card.create_card_from_input(69, \"桃\", \"♦️\", \"2\", \"基本牌\"),\n",
    "    Card.create_card_from_input(108, \"顺手牵羊\", \"♠️\", \"4\", \"锦囊牌\"),\n",
    "    Card.create_card_from_input(95, \"决斗\", \"♦️\", \"A\", \"锦囊牌\"),\n",
    "    Card.create_card_from_input(94, \"南蛮入侵\", \"♠️\", \"K\", \"锦囊牌\"),\n",
    "    Card.create_card_from_input(50, \"闪\", \"♦️\", \"6\", \"基本牌\")\n",
    "]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "我的初步计算是：\n",
    "\n",
    "\"决斗\", \"♦️\", \"A\", ==> \"桃\", \"♦️\", \"2\", + 1\n",
    "\n",
    " ==> \"顺手牵羊\", \"♦️\", \"4\", + 1 ==> \"顺手牵羊\", \"♠️\", \"4\",  + 1\n",
    "\n",
    " ==> \"南蛮入侵\", \"♠️\", \"K\",  + 1 ==> \"闪\", \"♦️\", \"6\"（转成♠️6酒） + 1\n",
    "\n",
    " ==> \"杀\", \"♣️\", \"6\",  + 1\n",
    "\n",
    "总共过 6牌"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♠️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♦️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♦️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♠️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♠️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♠️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♠️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♠️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♠️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♦️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♠️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♠️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♦️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(69, 桃, ♦️, 2, 基本牌) 】转化成虚拟牌【 Card(69, 酒, ♠️, 2, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(69, 桃, ♦️, 2, 基本牌) 】转化成虚拟牌【 Card(69, 酒, ♦️, 2, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♦️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(69, 桃, ♦️, 2, 基本牌) 】转化成虚拟牌【 Card(69, 酒, ♦️, 2, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♦️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(69, 桃, ♦️, 2, 基本牌) 】转化成虚拟牌【 Card(69, 酒, ♠️, 2, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♠️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♠️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(69, 桃, ♦️, 2, 基本牌) 】转化成虚拟牌【 Card(69, 酒, ♠️, 2, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(69, 桃, ♦️, 2, 基本牌) 】转化成虚拟牌【 Card(69, 酒, ♠️, 2, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♠️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♠️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(69, 桃, ♦️, 2, 基本牌) 】转化成虚拟牌【 Card(69, 酒, ♦️, 2, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(69, 桃, ♦️, 2, 基本牌) 】转化成虚拟牌【 Card(69, 酒, ♠️, 2, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(69, 桃, ♦️, 2, 基本牌) 】转化成虚拟牌【 Card(69, 酒, ♠️, 2, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♠️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♠️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♦️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(69, 桃, ♦️, 2, 基本牌) 】转化成虚拟牌【 Card(69, 酒, ♠️, 2, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♠️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(69, 桃, ♦️, 2, 基本牌) 】转化成虚拟牌【 Card(69, 酒, ♠️, 2, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♠️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♦️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(69, 桃, ♦️, 2, 基本牌) 】转化成虚拟牌【 Card(69, 酒, ♣️, 2, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(69, 桃, ♦️, 2, 基本牌) 】转化成虚拟牌【 Card(69, 酒, ♠️, 2, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(69, 桃, ♦️, 2, 基本牌) 】转化成虚拟牌【 Card(69, 酒, ♦️, 2, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(69, 桃, ♦️, 2, 基本牌) 】转化成虚拟牌【 Card(69, 酒, ♦️, 2, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(69, 桃, ♦️, 2, 基本牌) 】转化成虚拟牌【 Card(69, 酒, ♠️, 2, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♠️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♦️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(69, 桃, ♦️, 2, 基本牌) 】转化成虚拟牌【 Card(69, 酒, ♠️, 2, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♠️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♦️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(69, 桃, ♦️, 2, 基本牌) 】转化成虚拟牌【 Card(69, 酒, ♦️, 2, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♦️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(69, 桃, ♦️, 2, 基本牌) 】转化成虚拟牌【 Card(69, 酒, ♦️, 2, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♦️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(69, 桃, ♦️, 2, 基本牌) 】转化成虚拟牌【 Card(69, 酒, ♦️, 2, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♦️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(69, 桃, ♦️, 2, 基本牌) 】转化成虚拟牌【 Card(69, 酒, ♦️, 2, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♦️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(69, 桃, ♦️, 2, 基本牌) 】转化成虚拟牌【 Card(69, 酒, ♦️, 2, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♦️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(69, 桃, ♦️, 2, 基本牌) 】转化成虚拟牌【 Card(69, 酒, ♦️, 2, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♦️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(69, 桃, ♦️, 2, 基本牌) 】转化成虚拟牌【 Card(69, 酒, ♠️, 2, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♠️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♠️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(69, 桃, ♦️, 2, 基本牌) 】转化成虚拟牌【 Card(69, 酒, ♦️, 2, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(69, 桃, ♦️, 2, 基本牌) 】转化成虚拟牌【 Card(69, 酒, ♠️, 2, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(69, 桃, ♦️, 2, 基本牌) 】转化成虚拟牌【 Card(69, 酒, ♦️, 2, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♦️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(69, 桃, ♦️, 2, 基本牌) 】转化成虚拟牌【 Card(69, 酒, ♠️, 2, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♠️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♠️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(69, 桃, ♦️, 2, 基本牌) 】转化成虚拟牌【 Card(69, 酒, ♠️, 2, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(69, 桃, ♦️, 2, 基本牌) 】转化成虚拟牌【 Card(69, 酒, ♠️, 2, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♠️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♠️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(69, 桃, ♦️, 2, 基本牌) 】转化成虚拟牌【 Card(69, 酒, ♦️, 2, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(69, 桃, ♦️, 2, 基本牌) 】转化成虚拟牌【 Card(69, 酒, ♠️, 2, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(69, 桃, ♦️, 2, 基本牌) 】转化成虚拟牌【 Card(69, 酒, ♠️, 2, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♠️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♠️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♦️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(69, 桃, ♦️, 2, 基本牌) 】转化成虚拟牌【 Card(69, 酒, ♦️, 2, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♦️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(69, 桃, ♦️, 2, 基本牌) 】转化成虚拟牌【 Card(69, 酒, ♠️, 2, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♠️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(69, 桃, ♦️, 2, 基本牌) 】转化成虚拟牌【 Card(69, 酒, ♠️, 2, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♠️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♦️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(69, 桃, ♦️, 2, 基本牌) 】转化成虚拟牌【 Card(69, 酒, ♠️, 2, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(69, 桃, ♦️, 2, 基本牌) 】转化成虚拟牌【 Card(69, 酒, ♠️, 2, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(69, 桃, ♦️, 2, 基本牌) 】转化成虚拟牌【 Card(69, 酒, ♦️, 2, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(69, 桃, ♦️, 2, 基本牌) 】转化成虚拟牌【 Card(69, 酒, ♦️, 2, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♦️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♦️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(69, 桃, ♦️, 2, 基本牌) 】转化成虚拟牌【 Card(69, 酒, ♦️, 2, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♦️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(69, 桃, ♦️, 2, 基本牌) 】转化成虚拟牌【 Card(69, 酒, ♦️, 2, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♦️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♠️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(69, 桃, ♦️, 2, 基本牌) 】转化成虚拟牌【 Card(69, 酒, ♦️, 2, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(69, 桃, ♦️, 2, 基本牌) 】转化成虚拟牌【 Card(69, 酒, ♦️, 2, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(69, 桃, ♦️, 2, 基本牌) 】转化成虚拟牌【 Card(69, 酒, ♠️, 2, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♠️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♦️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♦️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(69, 桃, ♦️, 2, 基本牌) 】转化成虚拟牌【 Card(69, 酒, ♠️, 2, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♠️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(69, 桃, ♦️, 2, 基本牌) 】转化成虚拟牌【 Card(69, 酒, ♦️, 2, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♦️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(69, 桃, ♦️, 2, 基本牌) 】转化成虚拟牌【 Card(69, 酒, ♦️, 2, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♦️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♠️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♣️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(69, 桃, ♦️, 2, 基本牌) 】转化成虚拟牌【 Card(69, 酒, ♣️, 2, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(69, 桃, ♦️, 2, 基本牌) 】转化成虚拟牌【 Card(69, 酒, ♠️, 2, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(69, 桃, ♦️, 2, 基本牌) 】转化成虚拟牌【 Card(69, 酒, ♠️, 2, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♠️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♠️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(69, 桃, ♦️, 2, 基本牌) 】转化成虚拟牌【 Card(69, 酒, ♦️, 2, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♦️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(69, 桃, ♦️, 2, 基本牌) 】转化成虚拟牌【 Card(69, 酒, ♠️, 2, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♠️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(69, 桃, ♦️, 2, 基本牌) 】转化成虚拟牌【 Card(69, 酒, ♠️, 2, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♠️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♣️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(69, 桃, ♦️, 2, 基本牌) 】转化成虚拟牌【 Card(69, 酒, ♦️, 2, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(69, 桃, ♦️, 2, 基本牌) 】转化成虚拟牌【 Card(69, 酒, ♠️, 2, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(69, 桃, ♦️, 2, 基本牌) 】转化成虚拟牌【 Card(69, 酒, ♣️, 2, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(69, 桃, ♦️, 2, 基本牌) 】转化成虚拟牌【 Card(69, 酒, ♦️, 2, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♦️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(69, 桃, ♦️, 2, 基本牌) 】转化成虚拟牌【 Card(69, 酒, ♠️, 2, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♠️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♣️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(69, 桃, ♦️, 2, 基本牌) 】转化成虚拟牌【 Card(69, 酒, ♣️, 2, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♣️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(69, 桃, ♦️, 2, 基本牌) 】转化成虚拟牌【 Card(69, 酒, ♦️, 2, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(69, 桃, ♦️, 2, 基本牌) 】转化成虚拟牌【 Card(69, 酒, ♠️, 2, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♠️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♦️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(69, 桃, ♦️, 2, 基本牌) 】转化成虚拟牌【 Card(69, 酒, ♦️, 2, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♦️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(69, 桃, ♦️, 2, 基本牌) 】转化成虚拟牌【 Card(69, 酒, ♣️, 2, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♣️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(69, 桃, ♦️, 2, 基本牌) 】转化成虚拟牌【 Card(69, 酒, ♣️, 2, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♣️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(69, 桃, ♦️, 2, 基本牌) 】转化成虚拟牌【 Card(69, 酒, ♦️, 2, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♦️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(69, 桃, ♦️, 2, 基本牌) 】转化成虚拟牌【 Card(69, 酒, ♠️, 2, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♠️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♠️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(69, 桃, ♦️, 2, 基本牌) 】转化成虚拟牌【 Card(69, 酒, ♦️, 2, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(69, 桃, ♦️, 2, 基本牌) 】转化成虚拟牌【 Card(69, 酒, ♠️, 2, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(69, 桃, ♦️, 2, 基本牌) 】转化成虚拟牌【 Card(69, 酒, ♣️, 2, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♣️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(69, 桃, ♦️, 2, 基本牌) 】转化成虚拟牌【 Card(69, 酒, ♣️, 2, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♣️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(69, 桃, ♦️, 2, 基本牌) 】转化成虚拟牌【 Card(69, 酒, ♠️, 2, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♠️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♠️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(69, 桃, ♦️, 2, 基本牌) 】转化成虚拟牌【 Card(69, 酒, ♠️, 2, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(69, 桃, ♦️, 2, 基本牌) 】转化成虚拟牌【 Card(69, 酒, ♠️, 2, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♠️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♠️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(69, 桃, ♦️, 2, 基本牌) 】转化成虚拟牌【 Card(69, 酒, ♣️, 2, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(69, 桃, ♦️, 2, 基本牌) 】转化成虚拟牌【 Card(69, 酒, ♠️, 2, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(69, 桃, ♦️, 2, 基本牌) 】转化成虚拟牌【 Card(69, 酒, ♠️, 2, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♠️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♠️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♣️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(69, 桃, ♦️, 2, 基本牌) 】转化成虚拟牌【 Card(69, 酒, ♣️, 2, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♣️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(69, 桃, ♦️, 2, 基本牌) 】转化成虚拟牌【 Card(69, 酒, ♠️, 2, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♠️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(69, 桃, ♦️, 2, 基本牌) 】转化成虚拟牌【 Card(69, 酒, ♣️, 2, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♣️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(69, 桃, ♦️, 2, 基本牌) 】转化成虚拟牌【 Card(69, 酒, ♠️, 2, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♠️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♦️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(69, 桃, ♦️, 2, 基本牌) 】转化成虚拟牌【 Card(69, 酒, ♠️, 2, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(69, 桃, ♦️, 2, 基本牌) 】转化成虚拟牌【 Card(69, 酒, ♠️, 2, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(69, 桃, ♦️, 2, 基本牌) 】转化成虚拟牌【 Card(69, 酒, ♦️, 2, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♦️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(69, 桃, ♦️, 2, 基本牌) 】转化成虚拟牌【 Card(69, 酒, ♣️, 2, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♣️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♠️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(69, 桃, ♦️, 2, 基本牌) 】转化成虚拟牌【 Card(69, 酒, ♦️, 2, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♦️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(69, 桃, ♦️, 2, 基本牌) 】转化成虚拟牌【 Card(69, 酒, ♣️, 2, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♣️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♠️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♦️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(69, 桃, ♦️, 2, 基本牌) 】转化成虚拟牌【 Card(69, 酒, ♦️, 2, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(69, 桃, ♦️, 2, 基本牌) 】转化成虚拟牌【 Card(69, 酒, ♣️, 2, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(69, 桃, ♦️, 2, 基本牌) 】转化成虚拟牌【 Card(69, 酒, ♦️, 2, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♦️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(69, 桃, ♦️, 2, 基本牌) 】转化成虚拟牌【 Card(69, 酒, ♠️, 2, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♠️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♣️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(69, 桃, ♦️, 2, 基本牌) 】转化成虚拟牌【 Card(69, 酒, ♣️, 2, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(69, 桃, ♦️, 2, 基本牌) 】转化成虚拟牌【 Card(69, 酒, ♠️, 2, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♠️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♣️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(69, 桃, ♦️, 2, 基本牌) 】转化成虚拟牌【 Card(69, 酒, ♦️, 2, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(69, 桃, ♦️, 2, 基本牌) 】转化成虚拟牌【 Card(69, 酒, ♠️, 2, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(69, 桃, ♦️, 2, 基本牌) 】转化成虚拟牌【 Card(69, 酒, ♣️, 2, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♣️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♠️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♦️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(69, 桃, ♦️, 2, 基本牌) 】转化成虚拟牌【 Card(69, 酒, ♣️, 2, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♣️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(69, 桃, ♦️, 2, 基本牌) 】转化成虚拟牌【 Card(69, 酒, ♦️, 2, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♦️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(69, 桃, ♦️, 2, 基本牌) 】转化成虚拟牌【 Card(69, 酒, ♠️, 2, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♠️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♦️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(69, 桃, ♦️, 2, 基本牌) 】转化成虚拟牌【 Card(69, 酒, ♠️, 2, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(69, 桃, ♦️, 2, 基本牌) 】转化成虚拟牌【 Card(69, 酒, ♣️, 2, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(69, 桃, ♦️, 2, 基本牌) 】转化成虚拟牌【 Card(69, 酒, ♦️, 2, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(69, 桃, ♦️, 2, 基本牌) 】转化成虚拟牌【 Card(69, 酒, ♦️, 2, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♦️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♦️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(69, 桃, ♦️, 2, 基本牌) 】转化成虚拟牌【 Card(69, 酒, ♦️, 2, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♦️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(69, 桃, ♦️, 2, 基本牌) 】转化成虚拟牌【 Card(69, 酒, ♦️, 2, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♦️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(69, 桃, ♦️, 2, 基本牌) 】转化成虚拟牌【 Card(69, 酒, ♠️, 2, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♠️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♣️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(69, 桃, ♦️, 2, 基本牌) 】转化成虚拟牌【 Card(69, 酒, ♦️, 2, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(69, 桃, ♦️, 2, 基本牌) 】转化成虚拟牌【 Card(69, 酒, ♣️, 2, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♣️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(69, 桃, ♦️, 2, 基本牌) 】转化成虚拟牌【 Card(69, 酒, ♣️, 2, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♣️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(69, 桃, ♦️, 2, 基本牌) 】转化成虚拟牌【 Card(69, 酒, ♦️, 2, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(69, 桃, ♦️, 2, 基本牌) 】转化成虚拟牌【 Card(69, 酒, ♠️, 2, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♠️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♦️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(69, 桃, ♦️, 2, 基本牌) 】转化成虚拟牌【 Card(69, 酒, ♠️, 2, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♠️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♦️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(69, 桃, ♦️, 2, 基本牌) 】转化成虚拟牌【 Card(69, 酒, ♠️, 2, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(69, 桃, ♦️, 2, 基本牌) 】转化成虚拟牌【 Card(69, 酒, ♣️, 2, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(69, 桃, ♦️, 2, 基本牌) 】转化成虚拟牌【 Card(69, 酒, ♦️, 2, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(69, 桃, ♦️, 2, 基本牌) 】转化成虚拟牌【 Card(69, 酒, ♦️, 2, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♦️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♦️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(69, 桃, ♦️, 2, 基本牌) 】转化成虚拟牌【 Card(69, 酒, ♦️, 2, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♦️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(69, 桃, ♦️, 2, 基本牌) 】转化成虚拟牌【 Card(69, 酒, ♦️, 2, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♦️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♣️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(69, 桃, ♦️, 2, 基本牌) 】转化成虚拟牌【 Card(69, 酒, ♣️, 2, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♣️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(69, 桃, ♦️, 2, 基本牌) 】转化成虚拟牌【 Card(69, 酒, ♦️, 2, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(69, 桃, ♦️, 2, 基本牌) 】转化成虚拟牌【 Card(69, 酒, ♦️, 2, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(69, 桃, ♦️, 2, 基本牌) 】转化成虚拟牌【 Card(69, 酒, ♣️, 2, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♣️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♦️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♦️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(69, 桃, ♦️, 2, 基本牌) 】转化成虚拟牌【 Card(69, 酒, ♣️, 2, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♣️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(69, 桃, ♦️, 2, 基本牌) 】转化成虚拟牌【 Card(69, 酒, ♣️, 2, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♣️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(69, 桃, ♦️, 2, 基本牌) 】转化成虚拟牌【 Card(69, 酒, ♦️, 2, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♦️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(69, 桃, ♦️, 2, 基本牌) 】转化成虚拟牌【 Card(69, 酒, ♦️, 2, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♦️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♠️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♠️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(69, 桃, ♦️, 2, 基本牌) 】转化成虚拟牌【 Card(69, 酒, ♦️, 2, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(69, 桃, ♦️, 2, 基本牌) 】转化成虚拟牌【 Card(69, 酒, ♠️, 2, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(69, 桃, ♦️, 2, 基本牌) 】转化成虚拟牌【 Card(69, 酒, ♣️, 2, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(69, 桃, ♦️, 2, 基本牌) 】转化成虚拟牌【 Card(69, 酒, ♠️, 2, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♠️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♣️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(69, 桃, ♦️, 2, 基本牌) 】转化成虚拟牌【 Card(69, 酒, ♣️, 2, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♣️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(69, 桃, ♦️, 2, 基本牌) 】转化成虚拟牌【 Card(69, 酒, ♠️, 2, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♠️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♠️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(69, 桃, ♦️, 2, 基本牌) 】转化成虚拟牌【 Card(69, 酒, ♣️, 2, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♣️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(69, 桃, ♦️, 2, 基本牌) 】转化成虚拟牌【 Card(69, 酒, ♠️, 2, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♠️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(69, 桃, ♦️, 2, 基本牌) 】转化成虚拟牌【 Card(69, 酒, ♠️, 2, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♠️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♦️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(69, 桃, ♦️, 2, 基本牌) 】转化成虚拟牌【 Card(69, 酒, ♦️, 2, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(69, 桃, ♦️, 2, 基本牌) 】转化成虚拟牌【 Card(69, 酒, ♠️, 2, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(69, 桃, ♦️, 2, 基本牌) 】转化成虚拟牌【 Card(69, 酒, ♦️, 2, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♦️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(69, 桃, ♦️, 2, 基本牌) 】转化成虚拟牌【 Card(69, 酒, ♠️, 2, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♠️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♠️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(69, 桃, ♦️, 2, 基本牌) 】转化成虚拟牌【 Card(69, 酒, ♣️, 2, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♣️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(69, 桃, ♦️, 2, 基本牌) 】转化成虚拟牌【 Card(69, 酒, ♠️, 2, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(69, 桃, ♦️, 2, 基本牌) 】转化成虚拟牌【 Card(69, 酒, ♠️, 2, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(69, 桃, ♦️, 2, 基本牌) 】转化成虚拟牌【 Card(69, 酒, ♦️, 2, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♦️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♠️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♠️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♦️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(69, 桃, ♦️, 2, 基本牌) 】转化成虚拟牌【 Card(69, 酒, ♦️, 2, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(69, 桃, ♦️, 2, 基本牌) 】转化成虚拟牌【 Card(69, 酒, ♠️, 2, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♠️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(69, 桃, ♦️, 2, 基本牌) 】转化成虚拟牌【 Card(69, 酒, ♦️, 2, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♦️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♦️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(69, 桃, ♦️, 2, 基本牌) 】转化成虚拟牌【 Card(69, 酒, ♠️, 2, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(69, 桃, ♦️, 2, 基本牌) 】转化成虚拟牌【 Card(69, 酒, ♠️, 2, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(69, 桃, ♦️, 2, 基本牌) 】转化成虚拟牌【 Card(69, 酒, ♦️, 2, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(69, 桃, ♦️, 2, 基本牌) 】转化成虚拟牌【 Card(69, 酒, ♦️, 2, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(69, 桃, ♦️, 2, 基本牌) 】转化成虚拟牌【 Card(69, 酒, ♣️, 2, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♣️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♦️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(69, 桃, ♦️, 2, 基本牌) 】转化成虚拟牌【 Card(69, 酒, ♣️, 2, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♣️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♦️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(69, 桃, ♦️, 2, 基本牌) 】转化成虚拟牌【 Card(69, 酒, ♦️, 2, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♦️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(69, 桃, ♦️, 2, 基本牌) 】转化成虚拟牌【 Card(69, 酒, ♦️, 2, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♦️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(69, 桃, ♦️, 2, 基本牌) 】转化成虚拟牌【 Card(69, 酒, ♣️, 2, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♣️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♠️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(69, 桃, ♦️, 2, 基本牌) 】转化成虚拟牌【 Card(69, 酒, ♦️, 2, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(69, 桃, ♦️, 2, 基本牌) 】转化成虚拟牌【 Card(69, 酒, ♠️, 2, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♠️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(69, 桃, ♦️, 2, 基本牌) 】转化成虚拟牌【 Card(69, 酒, ♦️, 2, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♦️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♦️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(69, 桃, ♦️, 2, 基本牌) 】转化成虚拟牌【 Card(69, 酒, ♣️, 2, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♣️, 6, 基本牌) 】\n",
      "成功使用技能：将原牌【 Card(50, 闪, ♦️, 6, 基本牌) 】转化成虚拟牌【 Card(50, 酒, ♠️, 6, 基本牌) 】\n",
      "最佳出牌顺序： [Card(95, 决斗, ♦️, A, 锦囊牌), Card(106, 顺手牵羊, ♦️, 4, 锦囊牌), Card(108, 顺手牵羊, ♠️, 4, 锦囊牌), Card(94, 南蛮入侵, ♠️, K, 锦囊牌), Card(50, 闪, ♦️, 6, 基本牌), Card(11, 杀, ♣️, 6, 基本牌)]\n",
      "最高得分： 5\n"
     ]
    }
   ],
   "source": [
    "from entity.game import TurnResolver\n",
    "deck = Deck()\n",
    "round_one_resolver = TurnResolver(player, deck)\n",
    "strategy = RuleBasedStrategy(round_one_resolver)\n",
    "best_order, best_score = strategy.get_optimal_play_order(player)\n",
    "print(\"最佳出牌顺序：\", best_order)\n",
    "print(\"最高得分：\", best_score)\n"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "charlatan",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.11.11"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
